In [1]:
%matplotlib inline

# OPTIONAL: Load the "autoreload" extension so that code can change
%load_ext autoreload

# OPTIONAL: always reload modules so that as you change code in src, it gets loaded
%autoreload 2

Geometric Model

Model

Please enter a brief description of the model, considering that more detailed information will be entered in the following sections

General data of the building

In [2]:
import pandas as pd

input_parameters = pd.read_csv('../data/processed/cultural-e-input.csv')

Please enter the following general information related to the building

Field Value
Type of building -
Location -
Number of thermal zones -
Photovoltaic system -
Technology installed -
Position [façade or roof] -
Azimuth [°] -
Space for additional information/system -
Quantity ID
Gross floor area [m2] IN_GFA
Net floor area [m2] IN_NIA
S/V ratio IN_SV
PV capacity [kWp] IN_PV_kWp
PV area [m2] IN_A_PV
Battery capacity [kWh] IN_PV_bat
Tilt angle [°] IN_PV_Tilt
In [3]:
input_parameters[[
        'IN_GFA', 'IN_NIA', 'IN_SV', 'IN_A_PV', 'IN_PV_bat',
        'IN_PV_Tilt'
    ]]
Out[3]:
IN_GFA IN_NIA IN_SV IN_A_PV IN_PV_bat IN_PV_Tilt
0 3.0 2.0 4.0 3.0 4.0 3.0

Thermal zone

Please fill in this table for the information related to the thermal zones. This information must be provided for each thermal zone.

Thermal zone inputs

Field Value
Thermal zone
Main exposure
Presence of ceiling fan (yes/no)
People density [pers/m²]
Lighting density [W/m²]
Electric equipment [W/m²]
Heating setpoint temperature [°C]
Heating system limited or unlimited
Cooling setpoint temperature [°C]
Cooling system (limited or unlimited)
Natural ventilation rates [ACH]
Infiltration rates [ACH]
Mechanical ventilation typology (centralized/decentralized)
Mechanical ventilation [ACH]
Heat recovery efficiency [%]
HVAC system
Space for additional information/system
Quantity ID
Floor area [m2] IN_A_F0dayAx
Volume [m3] IN_V_F0dayAx
Glazed area [m2] IN_WinA_F0dayAx
WWR [%] IN_WWR_F0dayAx
Heating system power (in case of limited) [kW] IN_QHEAT_F0dayAx
Cooling system power (in case of limited) [kW] IN_QCOOL_F0dayAx
In [4]:
input_parameters[[
    'IN_A_FdayAx',
    'IN_V_FdayAx',
    'IN_WinA_FdayAx',
    'IN_WWR_FdayAx',
    #'IN_QHEAT_F0dayAx,'
    #'IN_QCOOL_F0dayAx,'
]]
Out[4]:
IN_A_FdayAx IN_V_FdayAx IN_WinA_FdayAx IN_WWR_FdayAx
0 3.0 3.0 3.0 3.0

Internal gains

Please fill in this table with the general information required on the internal gains.

Quantity ID
Convective fraction of sensible heat gains from persons IN_IG_CONVPER
Convective fraction of sensible heat gains from electric equipment. IN_IG_CONVAPL
Convective fraction of sensible heat gains from lighting. IN_IG_CONVLGT
Sensible heat gain per person (active) [W/pers] IN_IG_PER_S1
Sensible heat gain per person (sleeping) [W/pers] IN_IG_PER_S0
Latent heat gain per person (active) [kg/s/pers] IN_IG_LATPER_S1
Latent heat gain per person (sleeping) [kg/s/pers] IN_IG_LATPER_S0
Appliances consumption (in use) [W/m²] IN_IG_APL_S1
Appliances consumption (standby) [W/m²] IN_IG_APL_S0
Lighting consumption [W/m²] IN_IG_LGT
In [5]:
input_parameters[[
    'IN_IG_CONVPER', 
    'IN_IG_CONVAPL', 
    'IN_IG_CONVLGT', 
    'IN_IG_PER_S1', 
    #'IN_IG_PER_S0', 
    'IN_IG_LATPER_S1', 
    #'IN_IG_LATPER_S0', 
    'IN_IG_APL_S1', 
    #'IN_IG_APL_S0', 
    #'IN_IG_LGT'
]]
Out[5]:
IN_IG_CONVPER IN_IG_CONVAPL IN_IG_CONVLGT IN_IG_PER_S1 IN_IG_LATPER_S1 IN_IG_APL_S1
0 0.7 0.5 0.6 75.6 0.000015 5.5728

Figures

Please consider adding the heating setpoint schedule chart.
Please consider adding the cooling setpoint schedule chart.
Please consider adding the occupancy schedule chart.
Please consider adding the lighting schedule chart.
Please consider adding the appliances schedule chart.

Using the following sintax: ![placeholder](./placeholder.jpg)

Building envelope

Opaque envelope components

Please fill in the following table with the information related to the opaque envelope components. Please enter manually the entire table except for the section “U-value [W/m²K]”

Building element Layers (I – O) Thickness (m) Thermal Conductivity [W/mK] Density [kg/m3] Thermal Capacity [J/kgK]
External wall
Adjacent wall
Boundary wall
Roof
Ceiling/Interior floor
Ground floor
In [6]:
input_parameters[[
    'IN_U_EXT_WALL', 
    'IN_U_ADJ_WALL', 
    'IN_U_BND_WALL', 
    'IN_U_ROOF', 
    'IN_U_FLOOR',
    'IN_U_GDFLOOR',
]] 
Out[6]:
IN_U_EXT_WALL IN_U_ADJ_WALL IN_U_BND_WALL IN_U_ROOF IN_U_FLOOR IN_U_GDFLOOR
0 3.0 3.0 3.0 3.0 3.0 3.0

Glazed envelope components

For each thermal zone, please fill in the following tables with the information related to the glazed envelope components. In addition, if there are different windows in your thermal zone, please fill in for each window typology.

Glazed envelope inputs

Field Value
Reference thermal zone [ID]
Typology and layer description
Orientation
Manual or automated windows
If automated windows
Frame dimensions [m x m]
Space for additional information
Presence of shading (yes/no)
Typology of shading
Application of shading (external or internal)
Slat angle
Manual or automated shading
Additional shading elements (balcony…)
Space for additional information
In [7]:
input_parameters[[
   #'IN_WinAx_F0dayAx', 
   #'IN_Ugx_F0dayAx', 
   #'IN_Gx_value_F0dayAx', 
   #'IN_Ux_F0dayAx', 
]] 
Out[7]:
0

Ventilation strategy

No. strategy Signal/parameter Logic function
1
No.

Shading strategy

No. strategy Signal/parameter Logic function
1
No.

Results

In [8]:
from pvlib.iotools import read_epw
weather, meta = read_epw('../data/processed/meteo.epw')
#weather.head()
In [9]:
summary = pd.read_csv('../data/processed/summary.csv')
#summary.head()
In [10]:
energy_zones = pd.read_csv('../data/processed/energy_zones.csv')
#energy_zones.head()
In [11]:
cultural_e = pd.read_csv('../data/processed/cultural-e.csv')
#cultural_e.head()

Climate

The weather conditions of a location play an important role in the energy performance of a building. In the next subsections, some results in terms of outdoor air temperature, global horizontal irradiance, and relative humidity, are presented.

In [12]:
from src.visualization import visualize as viz
In [13]:
viz.air_temperature(weather)
2021-03-05T16:42:07.400705 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Hourly dry-bulb temperature distribution and the cumulative frequency of a standard year.
Interpretation of results [Please enter manually this field]
In [14]:
viz.relative_humidity(weather)
2021-03-05T16:42:08.416499 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Hourly relative humidity distribution of a standard year.
Interpretation of results [Please enter manually this field]
In [15]:
viz.horizontal_irradiance(weather)
2021-03-05T16:42:09.140759 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Hourly global horizontal radiation distributions and the cumulative frequency of a standard year.
Interpretation of results [Please enter manually this field]

Energy

This section shows the main results in terms of energy balance of the building, energy consumption considering the total energy use of the house and overall heating load considering an ideal heating and/or cooling system. It also gives information on the use of renewable energy in case a photovoltaic system has been installed in the building.

Monthly energy balance for a single zone

In [16]:
for zone in ['1', '2', '3', '4', '5']:
    viz.zone_energy_balance(energy_zones, zone)
2021-03-05T16:42:10.388530 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T16:42:12.081376 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T16:42:13.832959 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T16:42:15.943344 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
2021-03-05T16:42:17.961453 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Monthly energy balance of each thermal zone. The heat balance of the building consists of all sources and sinks of energy inside a building and the energy flows through its envelope. It should be always close to 0 since the building is losing as much heat as it gains.
Interpretation of results [Please enter manually this field]

Annual energy balance for all zones

In [17]:
viz.energy_balance(summary)
2021-03-05T16:42:19.487922 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Annual thermal balance split for all zones. The heat balance of the building consists of all sources and sinks of energy inside a building and the energy flows through its envelope. It should be always close to 0 since the building is losing as much heat as it gains.
Interpretation of results [Please enter manually this field]

Monthly energy consumption

In [18]:
viz.monthly_consumption(cultural_e)
2021-03-05T16:42:20.424241 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Monthly building energy consumption.
Interpretation of results [Please enter manually this field]

Self-consumption and Self-production

In [19]:
viz.self_production_consumption(cultural_e)
2021-03-05T16:42:21.089478 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Self-consumption and self-sufficiency indictors. While the self-consumption is the share of the total produced electricity that is self-consumed by the building owner, self-sufficiency represent the share of the building electric demand, covered by electricity that is produced by PV and self-consumed.
Interpretation of results [Please enter manually this field]

Cumulative ideal loads Heating Rate

In [20]:
viz.heating_loads(cultural_e)
2021-03-05T16:42:21.605858 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Cumulative curve of the heating power of the entire building. The heating system is modelled as an ideal system with infinite heating capacity that supplies conditioned air to the zone meeting all the load requirements and consuming no energy. This allows to calculate overall heating load.
Interpretation of results [Please enter manually this field]

Cumulative ideal loads Cooling Rate

In [21]:
viz.cooling_loads(cultural_e)
2021-03-05T16:42:22.100901 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Cumulative curve of the cooling power of the entire building. The cooling system is modelled as an ideal system with infinite cooling capacity that supplies conditioned air to the zone meeting all the load requirements and consuming no energy. This allows to calculate overall heating load.
Interpretation of results [Please enter manually this field]

Comfort

This section has been organized to show the main results in terms of thermal comfort, visual comfort and IAQ. For each group of output, you will be asked to enter the results for each thermal zone. If you think it is useful to assess the comfort in only some areas of the building or only in one, enter the results only for those useful for your evaluation.

Mean indoor temperature

In [22]:
viz.airt_heatmap(cultural_e, 'F1dayA')
2021-03-05T16:42:23.667054 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Hourly mapping of internal temperatures. It could be useful to know any areas of thermal discomfort.
Interpretation of results [Please enter manually this field]
In [23]:
viz.psychrochart(cultural_e.sample(n=1000), 'F1dayA', weather.sample(n=1000)).get_figure()
Out[23]:
2021-03-05T16:42:32.079097 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph The graph illustrates the distribution of simulated indoor temperature and relative humidity with respect to the two internal thermal condition comfort zones, one for the summer season (in light yellow) and one for the winter season (in light blue). The graph also highlights the outdoor temperature and humidity limits for which the application of some passive control systems can ensure summer comfort conditions without applying air conditioning systems.
Interpretation of results [Please enter manually this field]

Indoor Air Quality

In order to assess the air quality of the building during the occupied time, considering the people as one of the main pollution sources, the level of the CO2 concentration generated by the occupants, need to be calculated. The limits for indoor CO2 concentrations leading to the four IAQ categories have been calculated in accordance with the standard EN 16798-1: 2019.

Carbon Dioxide

In [24]:
viz.iaq_co2(cultural_e, ['F1dayA'], ['F1nightA1', 'F1nightA2'])
2021-03-05T16:42:35.852985 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Comparison of the zones in terms of indoor air quality. The graph indicates the percentage of hours in which the CO2 concentration is in the four categories in accordance with EN 16798-1: 2019.
Interpretation of results [Please enter manually this field]

Relative Humidity

Another necessary parameter to evaluate the internal comfort of a building is the indoor relative humidity. This is important because high or low percentages lead to humid or dry environment, respectively, which has a direct effect on human well-being. An effective way to evaluate this data is to classify the number of hours in which the relative humidity of a thermal zone falls within the categories for humidification and dehumidification, identified in standard EN 16798-1: 2019.

In [25]:
viz.relh(cultural_e, ['RELHUM_F1dayA', 'RELHUM_F1nightA1', 'RELHUM_F1nightA2'], ['OCC_F1dayA', 'OCC_F1nightA1', 'OCC_F1nightA2'])
2021-03-05T16:42:36.469808 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Number of hours within occupied time, when indoor relative humidity of the thermal zones, is within the categories for humidification and dehumidification, identified in standard EN 16798-1: 2019.
Interpretation of results [Please enter manually this field]

Natural Ventilation

The frequency of opening the windows can be considered an interesting indicator in the evaluation of some aspects related to the performance of the building. thanks to this result it is possible to evaluate, for example, whether the action of natural ventilation alone can guarantee an acceptable level of internal comfort, whether it affects the energy consumption of the building as well as giving indications on how the occupants interact with the building.

In [26]:
viz.win_heatmap(cultural_e, 'F1dayA')
2021-03-05T16:42:37.875191 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Numbers of hours in which natural ventilation is used.
Interpretation of results [Please enter manually this field]

Activation of the shadings

In [27]:
viz.shd_heatmap(cultural_e, 'F1dayA')
2021-03-05T16:42:41.177171 image/svg+xml Matplotlib v3.3.3, https://matplotlib.org/
- -
Description of the graph Numbers of hours in which the shadings are used.
Interpretation of results [Please enter manually this field]
In [ ]: